package com.jdy.utils;

import java.util.*;

/**
 * Spring 框架学习
 * <p>
 * Description: spring-mvc
 * <p>
 * Created by 49897 on 2020/3/30 1:06
 */
public class CollectionUtils {

    /**
     * 检查一个集合是否是空集合(即集合对象为空或者集合中没有任何元素)
     *
     * @param collection 集合对象
     * @return true ： 是空集合
     */
    public static boolean isEmpty(Collection<?> collection) {
        return null == collection || collection.isEmpty();
    }

    /**
     * 检查一个Map是否是Map(即Map对象为空或者Map中没有任何元素)
     *
     * @param map Map对象
     * @param <K> 键数据类型
     * @param <V> 值数据类型
     * @return true : Map为空Map
     */
    public static <K, V> boolean isEmpty(Map<K, V> map) {
        return null == map || map.isEmpty();
    }

    public static boolean isNotEmpty(Collection<?> collection) {
        return !isEmpty(collection);
    }


    @SafeVarargs
    public static <T> HashSet<T> newHashSet(T... elements) {
        return newHashSet(false, elements);
    }

    @SafeVarargs
    private static <T> HashSet<T> newHashSet(boolean isSorted, T... elements) {
        if (null == elements) {
            return isSorted ? new LinkedHashSet<>() : new HashSet<>();
        }
        int initialCapacity = Math.max((int) (elements.length / .75f) + 1, 16);
        HashSet<T> set = isSorted ? new LinkedHashSet<>(initialCapacity) : new HashSet<>(initialCapacity);
        Collections.addAll(set, elements);
        return set;
    }
}
